home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / e / emodls01.lha / emodules / textlabel / TestTextLabel.e < prev   
Text File  |  1980-07-16  |  5KB  |  173 lines

  1. OPT OSVERSION=37
  2. OPT PREPROCESS
  3.  
  4. /*
  5. *-- AutoRev header do NOT edit!
  6. *
  7. *   Project         :   Test program for textlabel.image
  8. *   File            :   testtextlabel.e
  9. *   Copyright       :   © 1993,1994 by hartmut Goebel
  10. *   Author          :   Piotr Gapinski
  11. *   Creation Date   :   04.01.96
  12. *   Current version :   2.2
  13. *   Translator      :   AmigaE v3.1+
  14. *
  15. *   REVISION HISTORY
  16. *
  17. *   Date         Version         Comment
  18. *   --------     -------         ------------------------------------------
  19. *   18.07.95     2.1             AOberon version by hartmut Goebel [hG]
  20. *   04.01.96     2.2             AmigaE version
  21. *
  22. *-- REV_END --*
  23. */
  24.  
  25. MODULE  'intuition/intuition','intuition/icclass',
  26.         'intuition/screens','intuition/imageclass',
  27.         'intuition/classusr','intuition/gadgetclass',
  28.         'utility/tagitem',
  29.         'libraries/textlabel',
  30.         'tools/exceptions'
  31.  
  32. #define PROGRAMVERSION '$VER: TestTextLabel 2.2 (04.01.96)'
  33.  
  34. ENUM  ERR_OK,ERR_KICK,ERR_NOLIB,ERR_STRUCT,ERR_NOMEM
  35. CONST NUMIMAGES     = 5,
  36.       LEFTOFFSET    = 20,
  37.       RIGHTOFFSET   = 20,
  38.       LABELHEIGHT   = 20,
  39.       IMAGEDISTANCE = 4
  40.  
  41. DEF   textlabelbase=NIL:PTR TO classlibrary,    -> must be defined!
  42.       drawinfo=NIL:PTR TO drawinfo
  43.  
  44. PROC main() HANDLE
  45.   DEF scr=NIL:PTR TO screen,
  46.       frame=NIL:PTR TO image,
  47.       gad=NIL:PTR TO gadget,
  48.       win=NIL:PTR TO window,
  49.       images[NUMIMAGES]:ARRAY OF LONG,
  50.       im:PTR TO image,
  51.       width,i
  52.  
  53.   IF KickVersion(37)=FALSE THEN Raise(ERR_KICK)
  54.   IF (textlabelbase:=OpenLibrary(TEXTLABELIMAGE,
  55.       TEXTLABELVERSION))=NIL THEN Raise(ERR_NOLIB)
  56.   scr:=LockPubScreen(NIL);
  57.   IF (drawinfo:=GetScreenDrawInfo(scr))=NIL THEN Raise(ERR_STRUCT);
  58.   width := 0
  59.   FOR i:=0 TO NUMIMAGES-1
  60.     IF (im:=makeimage(i))=NIL THEN Raise(ERR_NOMEM)
  61.     images[i]:=im
  62.     IF width<im.width THEN width:=im.width
  63.   ENDFOR
  64.  
  65.   frame:=NewObjectA(NIL,FRAMEICLASS,
  66.                     [IA_FRAMETYPE,FRAME_BUTTON,TAG_DONE]:tagitem)
  67.  
  68.   gad:=NewObjectA(NIL,FRBUTTONCLASS,
  69.                     [GA_TOP,30,
  70.                      GA_LEFT,LEFTOFFSET,
  71.                      GA_WIDTH,40,
  72.                      GA_HEIGHT,80,
  73.                      GA_IMAGE,frame,
  74.                      GA_LABELIMAGE,images[],
  75.                      TAG_DONE]:tagitem)
  76.  
  77.   IF width<gad.width THEN width:=gad.width
  78.   win:=OpenWindowTagList(NIL,
  79.             [WA_PUBSCREEN,scr,
  80.              WA_TOP,48,
  81.              WA_LEFT,140,
  82.              WA_INNERWIDTH,width+LEFTOFFSET-scr.wborleft+RIGHTOFFSET-scr.wborright,
  83.              WA_INNERHEIGHT,180,
  84.              WA_TITLE,'TestTextLabel',
  85.              WA_FLAGS,WFLG_DEPTHGADGET OR WFLG_DRAGBAR OR WFLG_CLOSEGADGET,
  86.              WA_IDCMP,IDCMP_CLOSEWINDOW,
  87.              WA_GADGETS,gad,
  88.              TAG_DONE])
  89.   UnlockPubScreen(NIL,scr);
  90.   IF win<>NIL
  91.     FOR i:=0 TO NUMIMAGES-1
  92.       DrawImageState(win.rport,images[i],0,0,IDS_NORMAL,drawinfo);
  93.     ENDFOR
  94.     waitclose(win)
  95.     FreeScreenDrawInfo(win.wscreen,drawinfo);
  96.   ENDIF
  97. EXCEPT DO
  98.   FOR i:=0 TO NUMIMAGES-1
  99.     EXIT images[i]=NIL
  100.     DisposeObject(images[i])
  101.   ENDFOR
  102.   IF gad THEN DisposeObject(gad)
  103.   IF frame THEN DisposeObject(frame)
  104.   IF win THEN CloseWindow(win)
  105.   IF textlabelbase THEN CloseLibrary(textlabelbase)
  106.   IF exception
  107.     SELECT exception
  108.     CASE ERR_KICK
  109.       WriteF('Wrong kickstart version, require v37+!\n')
  110.     CASE ERR_NOLIB
  111.       WriteF('Couldn\at open \s!\n',TEXTLABELIMAGE)
  112.     CASE ERR_STRUCT
  113.       WriteF('memory error!\n')
  114.     CASE ERR_NOMEM
  115.       WriteF('memory error!\n')
  116.     DEFAULT
  117.       report_exception()
  118.       WriteF('LEVEL: main()\n')
  119.     ENDSELECT
  120.   ENDIF
  121. ENDPROC
  122.  
  123. PROC makeimage(num)
  124.   DEF im:PTR TO image,
  125.       tags[NUMIMAGES]:LIST,
  126.       texts[NUMIMAGES]:LIST
  127.   texts:=[                                 -> shortcut
  128.           ' _yellow submarine ',           ->   "_"
  129.           ' M_MMassivholz ',               ->   "_"
  130.           ' Really??  ',                   ->   "?"
  131.           ' Logik und Berechenbar-keit ',  ->   "-"
  132.           ' kolo8@@sparc10.ely.pg.gda.pl ' ->   "@"
  133.          ]
  134.   tags:=[
  135.          [TLA_ADJUSTMENT,TLADJUST_HLEFT,TAG_DONE],
  136.          [TLA_FGPEN,TEXTPEN,TAG_DONE],
  137.          [TLA_UNDERSCORE,"?",TAG_DONE],
  138.          [TLA_UNDERSCORE,"-",TAG_DONE],
  139.          [TLA_UNDERSCORE,"@",TAG_DONE]
  140.         ]
  141.  
  142.   im:=NewObjectA(textlabelbase.class,NIL,
  143.         [
  144.          TLA_TEXT,texts[num],
  145.          TLA_LEFT,LEFTOFFSET,
  146.          TLA_TOP,Mul(LABELHEIGHT,num)+50,
  147.          TLA_DRAWINFO,drawinfo,
  148.          TLA_ADJUSTMENT,TLADJUST_HLEFT,
  149.          TAG_MORE,tags[num]
  150.         ]:tagitem)
  151. ENDPROC im
  152.  
  153. PROC waitclose(win:PTR TO window)
  154.   DEF msg:PTR TO intuimessage,class
  155.  
  156.   LOOP
  157.     WaitPort(win.userport)
  158.     msg:=GetMsg(win.userport)
  159.     WHILE msg<>NIL
  160.       class:=msg.class
  161.       ReplyMsg(msg);
  162.       IF class=IDCMP_CLOSEWINDOW THEN RETURN;
  163.       msg:=GetMsg(win.userport);
  164.     ENDWHILE
  165.   ENDLOOP
  166. ENDPROC
  167.  
  168. CHAR PROGRAMVERSION,0
  169. /*EE folds
  170. -1
  171. 123 27 126 12 
  172. EE folds*/
  173.